{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Regression: 抓住信息\n",
    "\n",
    "$ y = mx +b$\n",
    "\n",
    "$y = b_0+ b_1x_1+ b_2x_2 +...+b_nx_n$\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "假设现在有一系列的数据<br>\n",
    "$（x_1,y_1）,（x_2,y_2）（x_3,y_3）...（x_n,y_n)$<br>\n",
    "$y_1=(b+mx_1)+e_1$<br>\n",
    "$y_2=(b+mx_2)+e_2$<br>\n",
    "$y_3=(b+mx_3)+e_3$<br>\n",
    "...<br>\n",
    "$y_n=(b+mx_n)+e_n$<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$Y = \\begin{bmatrix} y_1\\\\y_2\\\\y_3\\\\...\\\\y_n \\end{bmatrix}$  $X = \\begin{bmatrix} 1&x_1\\\\1&x_2\\\\1&x_3\\\\...&...\\\\1&x_n \\end{bmatrix}$ $A = \\begin{bmatrix} b\\\\m \\end{bmatrix}$ $E = \\begin{bmatrix} e_1\\\\e_2\\\\e_3\\\\...\\\\e_n \\end{bmatrix}$\n",
    "\n",
    "\n",
    "$Y = XA +E$<br>\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "$A =(X^TX)^{-1}X^TY $<br>\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "Sum of squared error :$SSE=E^TE$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,\n",
       "        0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,\n",
       "        1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,\n",
       "        1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,\n",
       "        2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,\n",
       "        2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,\n",
       "        3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,\n",
       "        3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,\n",
       "        4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,\n",
       "        4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,\n",
       "        5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,\n",
       "        5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,\n",
       "        6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,\n",
       "        6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,\n",
       "        7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,\n",
       "        7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,\n",
       "        8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,\n",
       "        8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,\n",
       "        9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,\n",
       "        9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import statsmodels.api as sm\n",
    "nsample=100\n",
    "x = np.linspace(0, 10, nsample)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.        ,  0.        ],\n",
       "       [ 1.        ,  0.1010101 ],\n",
       "       [ 1.        ,  0.2020202 ],\n",
       "       [ 1.        ,  0.3030303 ],\n",
       "       [ 1.        ,  0.4040404 ],\n",
       "       [ 1.        ,  0.50505051],\n",
       "       [ 1.        ,  0.60606061],\n",
       "       [ 1.        ,  0.70707071],\n",
       "       [ 1.        ,  0.80808081],\n",
       "       [ 1.        ,  0.90909091],\n",
       "       [ 1.        ,  1.01010101],\n",
       "       [ 1.        ,  1.11111111],\n",
       "       [ 1.        ,  1.21212121],\n",
       "       [ 1.        ,  1.31313131],\n",
       "       [ 1.        ,  1.41414141],\n",
       "       [ 1.        ,  1.51515152],\n",
       "       [ 1.        ,  1.61616162],\n",
       "       [ 1.        ,  1.71717172],\n",
       "       [ 1.        ,  1.81818182],\n",
       "       [ 1.        ,  1.91919192],\n",
       "       [ 1.        ,  2.02020202],\n",
       "       [ 1.        ,  2.12121212],\n",
       "       [ 1.        ,  2.22222222],\n",
       "       [ 1.        ,  2.32323232],\n",
       "       [ 1.        ,  2.42424242],\n",
       "       [ 1.        ,  2.52525253],\n",
       "       [ 1.        ,  2.62626263],\n",
       "       [ 1.        ,  2.72727273],\n",
       "       [ 1.        ,  2.82828283],\n",
       "       [ 1.        ,  2.92929293],\n",
       "       [ 1.        ,  3.03030303],\n",
       "       [ 1.        ,  3.13131313],\n",
       "       [ 1.        ,  3.23232323],\n",
       "       [ 1.        ,  3.33333333],\n",
       "       [ 1.        ,  3.43434343],\n",
       "       [ 1.        ,  3.53535354],\n",
       "       [ 1.        ,  3.63636364],\n",
       "       [ 1.        ,  3.73737374],\n",
       "       [ 1.        ,  3.83838384],\n",
       "       [ 1.        ,  3.93939394],\n",
       "       [ 1.        ,  4.04040404],\n",
       "       [ 1.        ,  4.14141414],\n",
       "       [ 1.        ,  4.24242424],\n",
       "       [ 1.        ,  4.34343434],\n",
       "       [ 1.        ,  4.44444444],\n",
       "       [ 1.        ,  4.54545455],\n",
       "       [ 1.        ,  4.64646465],\n",
       "       [ 1.        ,  4.74747475],\n",
       "       [ 1.        ,  4.84848485],\n",
       "       [ 1.        ,  4.94949495],\n",
       "       [ 1.        ,  5.05050505],\n",
       "       [ 1.        ,  5.15151515],\n",
       "       [ 1.        ,  5.25252525],\n",
       "       [ 1.        ,  5.35353535],\n",
       "       [ 1.        ,  5.45454545],\n",
       "       [ 1.        ,  5.55555556],\n",
       "       [ 1.        ,  5.65656566],\n",
       "       [ 1.        ,  5.75757576],\n",
       "       [ 1.        ,  5.85858586],\n",
       "       [ 1.        ,  5.95959596],\n",
       "       [ 1.        ,  6.06060606],\n",
       "       [ 1.        ,  6.16161616],\n",
       "       [ 1.        ,  6.26262626],\n",
       "       [ 1.        ,  6.36363636],\n",
       "       [ 1.        ,  6.46464646],\n",
       "       [ 1.        ,  6.56565657],\n",
       "       [ 1.        ,  6.66666667],\n",
       "       [ 1.        ,  6.76767677],\n",
       "       [ 1.        ,  6.86868687],\n",
       "       [ 1.        ,  6.96969697],\n",
       "       [ 1.        ,  7.07070707],\n",
       "       [ 1.        ,  7.17171717],\n",
       "       [ 1.        ,  7.27272727],\n",
       "       [ 1.        ,  7.37373737],\n",
       "       [ 1.        ,  7.47474747],\n",
       "       [ 1.        ,  7.57575758],\n",
       "       [ 1.        ,  7.67676768],\n",
       "       [ 1.        ,  7.77777778],\n",
       "       [ 1.        ,  7.87878788],\n",
       "       [ 1.        ,  7.97979798],\n",
       "       [ 1.        ,  8.08080808],\n",
       "       [ 1.        ,  8.18181818],\n",
       "       [ 1.        ,  8.28282828],\n",
       "       [ 1.        ,  8.38383838],\n",
       "       [ 1.        ,  8.48484848],\n",
       "       [ 1.        ,  8.58585859],\n",
       "       [ 1.        ,  8.68686869],\n",
       "       [ 1.        ,  8.78787879],\n",
       "       [ 1.        ,  8.88888889],\n",
       "       [ 1.        ,  8.98989899],\n",
       "       [ 1.        ,  9.09090909],\n",
       "       [ 1.        ,  9.19191919],\n",
       "       [ 1.        ,  9.29292929],\n",
       "       [ 1.        ,  9.39393939],\n",
       "       [ 1.        ,  9.49494949],\n",
       "       [ 1.        ,  9.5959596 ],\n",
       "       [ 1.        ,  9.6969697 ],\n",
       "       [ 1.        ,  9.7979798 ],\n",
       "       [ 1.        ,  9.8989899 ],\n",
       "       [ 1.        , 10.        ]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = sm.add_constant(x)\n",
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 8, 18])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "beta = np.array([8, 18])\n",
    "beta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2.16813073, -0.87184324, -1.51544089,  0.30488714, -0.64107781,\n",
       "        0.35827168, -1.43343599,  0.48507063, -1.79202995,  0.28365294,\n",
       "        0.03353074, -1.11472344,  0.92490768, -0.14338227,  1.51895305,\n",
       "       -0.76230879, -0.08151028,  1.00084409, -0.19712446, -1.44442019,\n",
       "       -1.30288654,  0.12745626,  1.2328657 ,  1.91510454,  0.13931909,\n",
       "       -0.12241197, -1.80926467, -0.74293008,  0.22314904,  0.46463134,\n",
       "        0.76725228,  1.88367265,  0.8188344 ,  0.23617768,  1.30753861,\n",
       "        1.39664713,  1.90445889, -1.1975037 , -0.15950299,  0.64845137,\n",
       "        1.07221667, -0.91640766,  0.86232019,  0.09917178, -1.49586501,\n",
       "       -0.57405229, -1.02547921,  0.14015826, -1.37387683,  0.45396927,\n",
       "        1.03038349, -0.42732292,  0.99645183, -3.44074328, -1.11832394,\n",
       "        2.0415302 ,  0.62679266,  2.05667149, -0.35261708, -0.92118746,\n",
       "        0.91945928,  0.92266587, -0.78631117, -0.48013379, -1.95676495,\n",
       "       -0.96508147,  0.13092781,  0.54907104,  1.09857115, -0.57484073,\n",
       "       -1.03839746,  2.39653908,  0.04780377, -1.43351914, -0.20827205,\n",
       "       -0.29706919,  0.2192575 ,  0.96780322, -0.94827862,  0.20734499,\n",
       "       -0.2940647 ,  0.01456232, -1.16768406,  0.06912088,  1.73512961,\n",
       "       -0.56270182, -1.42893063, -2.34285214,  0.7685125 , -0.25722116,\n",
       "        1.48293927, -0.47559001,  0.0247726 ,  1.03609455,  0.21671097,\n",
       "        0.25955208,  0.05148093,  1.23538257,  0.10704377,  1.96665505])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e = np.random.normal(size=nsample)\n",
    "e"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 18.84065366,   5.45896563,   4.05915921,  14.97898115,\n",
       "        12.0673382 ,  18.88226751,  11.74191096,  23.15262589,\n",
       "        13.58530479,  25.78190104,  26.34947188,  22.42638282,\n",
       "        34.44272023,  30.91945229,  41.04931068,  31.46118333,\n",
       "        36.68335772,  43.91331134,  39.74165045,  35.3233536 ,\n",
       "        37.84920365,  46.81909948,  54.16432848,  59.39370451,\n",
       "        52.33295907,  52.84248562,  46.22640391,  53.37625867,\n",
       "        60.02483611,  63.05042942,  66.38171592,  73.7819996 ,\n",
       "        70.27599017,  69.18088838,  76.35587488,  78.6195993 ,\n",
       "        82.97683992,  69.28520877,  76.29339415,  82.15134778,\n",
       "        86.08835608,  77.96341625,  88.67523731,  86.67767707,\n",
       "        80.52067494,  86.94792037,  86.50896757,  94.15533675,\n",
       "        88.40334313,  99.36075543, 104.06100836,  98.59065813,\n",
       "       107.52771371,  87.15991998, 100.59019849, 118.20765098,\n",
       "       112.9521451 , 121.91972107, 111.69146007, 110.66678996,\n",
       "       121.68820551, 123.52242028, 116.79571688, 120.1447856 ,\n",
       "       114.57981159, 121.35641085, 128.65463906, 132.56353702,\n",
       "       137.1292194 , 130.58034181, 130.08073998, 149.07360451,\n",
       "       139.14810977, 133.55967702, 141.50409429, 142.87829044,\n",
       "       147.27810571, 152.83901609, 145.07678869, 152.67308856,\n",
       "       151.98422197, 155.34553888, 151.2524888 , 159.25469533,\n",
       "       169.4029208 , 159.73194544, 157.2189832 , 154.46755746,\n",
       "       171.84256251, 168.53207604, 179.05106001, 171.07659541,\n",
       "       175.39659029, 182.27138182, 179.99264577, 182.02503312,\n",
       "       182.8028592 , 190.54054921, 186.71703704, 197.83327527])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = np.dot(X, beta) + 5*e\n",
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$Y = XA +E$<br>\n",
    "$A =(X^TX)^{-1}X^TY $<br>\n",
    "Sum of squared error :$SSE=E^TE$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 7.8280121 , 18.07195246])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(np.dot(np.linalg.inv(np.dot(X.T,X)),X.T),y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 7.8280121 , 18.07195246])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linalg.inv(np.dot(X.T,X)).dot(X.T).dot(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = sm.OLS(y,X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "results = model.fit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 7.8280121  18.07195246]\n"
     ]
    }
   ],
   "source": [
    "print(results.params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:                      y   R-squared:                       0.989\n",
      "Model:                            OLS   Adj. R-squared:                  0.989\n",
      "Method:                 Least Squares   F-statistic:                     8884.\n",
      "Date:                Thu, 22 Aug 2019   Prob (F-statistic):           5.77e-98\n",
      "Time:                        13:35:00   Log-Likelihood:                -312.99\n",
      "No. Observations:                 100   AIC:                             630.0\n",
      "Df Residuals:                      98   BIC:                             635.2\n",
      "Df Model:                           1                                         \n",
      "Covariance Type:            nonrobust                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "const          7.8280      1.110      7.054      0.000       5.626      10.030\n",
      "x1            18.0720      0.192     94.258      0.000      17.691      18.452\n",
      "==============================================================================\n",
      "Omnibus:                        0.513   Durbin-Watson:                   1.845\n",
      "Prob(Omnibus):                  0.774   Jarque-Bera (JB):                0.408\n",
      "Skew:                          -0.156   Prob(JB):                        0.815\n",
      "Kurtosis:                       2.966   Cond. No.                         11.7\n",
      "==============================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n"
     ]
    }
   ],
   "source": [
    "print(results.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  7.8280121 ,   9.65346185,  11.47891159,  13.30436134,\n",
       "        15.12981108,  16.95526082,  18.78071057,  20.60616031,\n",
       "        22.43161005,  24.2570598 ,  26.08250954,  27.90795928,\n",
       "        29.73340903,  31.55885877,  33.38430852,  35.20975826,\n",
       "        37.035208  ,  38.86065775,  40.68610749,  42.51155723,\n",
       "        44.33700698,  46.16245672,  47.98790646,  49.81335621,\n",
       "        51.63880595,  53.4642557 ,  55.28970544,  57.11515518,\n",
       "        58.94060493,  60.76605467,  62.59150441,  64.41695416,\n",
       "        66.2424039 ,  68.06785364,  69.89330339,  71.71875313,\n",
       "        73.54420288,  75.36965262,  77.19510236,  79.02055211,\n",
       "        80.84600185,  82.67145159,  84.49690134,  86.32235108,\n",
       "        88.14780083,  89.97325057,  91.79870031,  93.62415006,\n",
       "        95.4495998 ,  97.27504954,  99.10049929, 100.92594903,\n",
       "       102.75139877, 104.57684852, 106.40229826, 108.22774801,\n",
       "       110.05319775, 111.87864749, 113.70409724, 115.52954698,\n",
       "       117.35499672, 119.18044647, 121.00589621, 122.83134595,\n",
       "       124.6567957 , 126.48224544, 128.30769519, 130.13314493,\n",
       "       131.95859467, 133.78404442, 135.60949416, 137.4349439 ,\n",
       "       139.26039365, 141.08584339, 142.91129314, 144.73674288,\n",
       "       146.56219262, 148.38764237, 150.21309211, 152.03854185,\n",
       "       153.8639916 , 155.68944134, 157.51489108, 159.34034083,\n",
       "       161.16579057, 162.99124032, 164.81669006, 166.6421398 ,\n",
       "       168.46758955, 170.29303929, 172.11848903, 173.94393878,\n",
       "       175.76938852, 177.59483826, 179.42028801, 181.24573775,\n",
       "       183.0711875 , 184.89663724, 186.72208698, 188.54753673])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fitted_ys=results.fittedvalues\n",
    "fitted_ys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2ba271327b8>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig ,ax = plt.subplots(figsize=(8,5))\n",
    "ax.plot(x, y, color='green', marker='o',label=\"data\")\n",
    "ax.plot(x,fitted_ys,color=\"red\",label=\"OLS\")\n",
    "ax.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
